<!DOCTYPE doctype PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">

<HTML>
  <HEAD>
    <META name="generator" content=
    "HTML Tidy for Java (vers. 2009-12-01), see jtidy.sourceforge.net">

    <TITLE>Debugger: Static Mappings</TITLE>
    <META http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <LINK rel="stylesheet" type="text/css" href="help/shared/DefaultStyle.css">
  </HEAD>

  <BODY lang="EN-US">
    <H1><A name="plugin"></A>Debugger: Static Mappings</H1>

    <DIV class="image">
      <IMG alt="" src="images/DebuggerStaticMappingPlugin.png">
    </DIV>

    <P>A static mapping refers to a range of addresses in the dynamic listing and its corresponding
    range in the static listing. These mappings provide a flexible means of mapping Ghidra program
    databases into a trace database. Typically, this table is populated automatically. See the <A
    href="help/topics/DebuggerModulesPlugin/DebuggerModulesPlugin.html#auto_map">Auto-Map</A>
    action. Common mapping schemes are available in user actions, e.g., <A href=
    "help/topics/DebuggerModulesPlugin/DebuggerModulesPlugin.html#map_modules">Map Modules</A>.
    This under-the-hood static mapping window displays the mappings table, allowing users or
    developers to diagnose image mapping issues and manually specify mappings, regardless of
    reported modules, sections, regions, etc. For most users, there is no reason to access this
    window.</P>

    <H2>Table Columns</H2>

    <P>The table has the following columns:</P>

    <UL>
      <LI>Dynamic Address - the minimum address in the dynamic address range.</LI>

      <LI>Static Program - the Ghidra URL of the program database, i.e., the imported static
      image.</LI>

      <LI>Static Address - the minimum address in the static address range.</LI>

      <LI>Length - the number of bytes in the mapping.</LI>

      <LI>Shift - the offset from static address to dynamic address.</LI>

      <LI>Lifespan - the span of snapshots for which this mapping is applicable.</LI>
    </UL>

    <H2>Actions</H2>

    <P>This window provides actions for finding, adding, and removing mappings. <B>NOTE:</B> To
    "modify" an entry, delete and re-add it.</P>

    <H3><A name="select_rows"></A><IMG alt="" src="icon.debugger.select.rows"> Select Rows</H3>

    <P>This action is available when the active listing's (dynamic or static) cursor is at a valid
    location. It selects the mapping containing that cursor. If the active listing has a selection,
    it selects all mappings intersecting that selection.</P>

    <H3><A name="add"></A><IMG alt="" src="icon.debugger.add"> Add Mapping</H3>

    <P>This action is always available. It presents a dialog to manually add a mapping. When one
    primary listing (dynamic or static) has a selection, and the other's cursor is at a valid
    location, it will populate the dialog, using the selection's size and minimum address, and the
    cursor as the corresponding minimum address. The default lifespan is "from now on out", i.e.,
    the current snap to infinity.</P>

    <H3><A name="remove"></A><IMG alt="" src="icon.debugger.delete"> Remove Mapping</H3>

    <P>This action is available when at least one mapping is selected. It removes those
    mappings.</P>
  </BODY>
</HTML>
